import java.util.ArrayList;
public class ComponentList 
{
    private ArrayList<ICompressor> compressors_list = new ArrayList<ICompressor>();
    private ArrayList<String> crypto_algorithms_list = new ArrayList<String>();
    private ArrayList<String> encrypt_mode_list = new ArrayList<String>();
    private ArrayList<IWriter> writers_list = new ArrayList<IWriter>();
    ComponentList()
    {
        createCompressorsList();
        createCryptoAlgorithmsList();
        createWritersList();
        createEncryptsModeList();
    }
    private void createCompressorsList()
    {
        compressors_list.add(new ArchivRAR());
        compressors_list.add(new ArchivZIP());
        //compressors_list.add(new ArchivGZIP()); //used ">"
        compressors_list.add(new ArchivBZIP2());
        compressors_list.add(new ArchivSevenZIP());
        compressors_list.add(new ArchivARJ());
        compressors_list.add(new ArchivLZMA());
    }
    private void createCryptoAlgorithmsList()
    {
//        crypto_algorithms_list.add("AES");
//        crypto_algorithms_list.add("DES");
//        crypto_algorithms_list.add("DESede");
//        crypto_algorithms_list.add("Blowfish");
//        crypto_algorithms_list.add("RC4");
    }
    private void createWritersList()
    {
        writers_list.add(new WriteToDateBase());
        //writers_list.add(new WriteToFile());
    }
    private void createEncryptsModeList()
    {
//        encrypt_mode_list.add("ECB");
//        encrypt_mode_list.add("CBC");
//        encrypt_mode_list.add("CFB");
//        encrypt_mode_list.add("OFB");
//        encrypt_mode_list.add("PCBC");
    }
    public ArrayList<ICompressor> getCompressorsList()
    {            
        return compressors_list;
    }
    public ArrayList<String> getCryptoAlgorithmsList()
    {
        return crypto_algorithms_list;
    }
    public ArrayList<IWriter> getWritersList()
    {       
        return writers_list;
    }
    public ArrayList<String> getEncryptsModeList()
    {
        return encrypt_mode_list;
    }
}
